//
//  JCClubApi.h
//  SquashSpark
//
//  Created by 郭吉成 on 2017/11/23.
//  Copyright © 2017年 Coollang-YF. All rights reserved.
//

#import "YFBaseRequest.h"
#import "ClubsSetting.h"
#import "SquashEnum.h"
@class JCClubModel;
@class JCClubMessageModel;
@class JCClubEventModel;
@class JCClubMemberModel;
@class JCReportProModel;
@class JCReportCommentModel;
@class JCReportModel;
@class JCReportListModel;

@interface JCClubApi : YFBaseRequest

//获取俱乐部首页数据
+ (JCClubApi *)getClubHomeListPage:(NSInteger)page
                          complete:(void(^)(NSError *error, NSArray <JCClubModel *>*recommendClubs, NSArray <JCClubModel *>*clubList)) complete;

//搜索俱乐部
+ (JCClubApi *)searchClubInfoWithName:(NSString *)name
                             complete:(void(^)(NSError *error, NSArray <JCClubModel *> *resultClubs)) complete;

//俱乐部详情
+ (JCClubApi *)getClubInfoWithClubID:(NSString *)clubID
                            complete:(void(^)(NSError *error, JCClubModel *clubInfo)) complete;

//俱乐部留言板
+ (JCClubApi *)getClubMessageListWithClubID:(NSString *)clubID
                                        page:(NSInteger)page
                            complete:(void(^)(NSError *error, NSArray <JCClubMessageModel *>*messageList)) complete;

//发布俱乐部留言
+ (JCClubApi *)sendClubMessageWithClubID:(NSString *)clubID
                                 content:(NSString *)content
                                complete:(void(^)(NSError *error)) complete;

//创建俱乐部
+ (JCClubApi *)creatClubCode:(NSString *)clubCode
                        name:(NSString *)name
                    describe:(NSString *)describe
                      banner:(NSString *)banner
                  headerIcon:(NSString *)headerIcon
                     address:(NSString *)address
                   clubPhone:(NSString *)clubPhone
               personalPhone:(NSString *)personalPhone
                    complete:(void(^)(NSError *error, BOOL isSuccess)) complete;

//获取俱乐部用户列表详情数据
+ (JCClubApi *)getClubMemberDetailWithClubID:(NSString *)clubID
                                    complete:(void(^)(NSError *error, JCClubModel *clubModel)) complete;

//获取俱乐部排行榜
+ (JCClubApi *)getClubMemberRankWithClubID:(NSString *)clubID
                        clubMemberRankTime:(ClubMemberRankTimeType)rankTimeType
                        clubMemberRankType:(ClubMemberRankType)rankType
                                  complete:(void(^)(NSError *error, NSArray <JCClubMemberModel *> *rankList)) complete;

//设置俱乐部
+ (JCClubApi *)setClubDate:(NSInteger)date
                     swing:(NSInteger)swing
                  duration:(NSInteger)duration
                    clubID:(NSString *)clubID
                  complete:(void(^)(NSError *error)) complete;

//获取俱乐部事件
+ (JCClubApi *)getClubEventListWithClubID:(NSString *)clubID
                                     page:(NSInteger)page
                                 complete:(void(^)(NSError *error, NSArray <JCClubEventModel *>*eventList)) complete;

//创建俱乐部事件
+ (JCClubApi *)createClubEventWithClubID:(NSString *)clubID
                                   title:(NSString *)title
                                 content:(NSString *)content
                              bannerList:(NSArray *)bannerList
                                   place:(NSString *)place
                               startTime:(NSString *)startTime
                                 endTime:(NSString *)endTime
                                complete:(void(^)(NSError *error)) complete;

//设置俱乐部密码
+ (JCClubApi *)setClubPasswordWithClubID:(NSString *)clubID
                                password:(NSString *)password
                                complete:(void(^)(NSError *error)) complete;

//申请加入俱乐部
+ (JCClubApi *)joinClubWithClubID:(NSString *)clubID
                         password:(NSString *)password
                         complete:(void(^)(NSError *error)) complete;

//获取周报告列表
+ (JCClubApi *)getReportListForUser:(NSString *)userID
                           complete:(void(^)(NSError *error, NSArray <JCReportListModel *> *reportList)) complete;

//获取周报告详情
+ (JCClubApi *)getReportDetailForUserID:(NSString *)userID
                                 clubID:(NSString *)clubID
                                   year:(NSString *)year
                               yearWeek:(NSString *)yearWeek
                               complete:(void(^)(NSError *error, JCReportModel *reportModel)) complete;

//获取周报告详情Pro
+ (JCClubApi *)getReportProForUserID:(NSString *)userID
                              clubID:(NSString *)clubID
                                year:(NSString *)year
                            yearWeek:(NSString *)yearWeek
                            complete:(void(^)(NSError *error, JCReportProModel *reportProModel)) complete;

//管理员获取周报成员列表
+ (JCClubApi *)getReportMemberListForClubID:(NSString *)clubID
                       reportMemberListType:(ReportMemberListType)memberType
                                   complete:(void(^)(NSError *error, NSArray <JCClubMemberModel *> *memberList)) complete;

//教练评论周报
+ (JCClubApi *)commentReportForClubID:(NSString *)clubID
                               userID:(NSString *)userID
                                 year:(NSString *)year
                             yearWeek:(NSString *)yearWeek
                          coachReview:(NSString *)coachReview
                           suggestion:(NSString *)suggestion
                               course:(NSString *)course
                             complete:(void(^)(NSError *error)) complete;

//获取教练的点评周报
+ (JCClubApi *)getReportCommentForClubID:(NSString *)clubID
                                  userID:(NSString *)userID
                                    year:(NSString *)year
                                yearWeek:(NSString *)yearWeek
                                complete:(void(^)(NSError *error, JCReportCommentModel *commentModel)) complete;

//退出俱乐部
+ (JCClubApi *)quitClubForClubID:(NSString *)clubID
                        complete:(void(^)(NSError *error)) complete;

//修改俱乐部资料
+ (JCClubApi *)editClubWithClubID:(NSString *)clubID
                             name:(NSString *)name
                        headerURL:(NSString *)headerURL
                         coverURL:(NSString *)coverURL
                          address:(NSString *)address
                         describe:(NSString *)describe
                         complete:(void(^)(NSError *error)) complete;

//删除俱乐部留言
+ (JCClubApi *)deleteMessageWithID:(NSString *)messageID
                          complete:(void(^)(NSError *error)) complete;

//删除俱乐部事件
+ (JCClubApi *)deleteEventWithID:(NSString *)eventID
                        complete:(void(^)(NSError *error)) complete;

//获取七牛token
+ (JCClubApi *)getQiniuTokenType:(RequestApiType)type
                        complete:(void(^)(NSError *error, NSString *token, NSString *key)) complete;

//举报 俱乐部 或者 留言
+ (JCClubApi *)spotterWithID:(NSString *) spotterID
               spotterIDType:(SpotterIDType)spotterTypeIDType
                 spotterType:(SpotterTopicType) spotterType
                    complete:(void(^)(NSError *error)) complete;

@end
